/**
 * 常用正则表达式
 */

// 统一社会信用代码(宽松匹配)(15位/18位/20位数字/字母)
export const regCreditCodeLoose =
  /^(([\dA-Za-z]{15})|([\dA-Za-z]{18})|([\dA-Za-z]{20}))$/;

// 统一社会信用代码
export const regCreditCode =
  /^[\dA-HJ-NP-RTUW-Y]{2}\d{6}[\dA-HJ-NP-RTUW-Y]{10}$/;

// 中国手机号(宽松), 只要是13,14,15,16,17,18,19开头即可 。
export const regChinaMobile = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/;

// 中国手机号(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条 。
export const regChinaMobileLoose = /^(?:(?:\+|00)86)?1\d{10}$/;

// 台湾手机号
export const regTwMobile = /^[0][9]\d{8}$/;

// 日期
export const regDate = /^\d{4}(-)(1[0-2]|0?\d)\1([0-2]\d|\d|30|31)$/;

// 邮箱地址(email)
export const regEmail =
  /^[\w!#$%&'*+./=?^`{|}~-]+@[\dA-Za-z](?:[\dA-Za-z-]{0,61}[\dA-Za-z])?(?:\.[\dA-Za-z](?:[\dA-Za-z-]{0,61}[\dA-Za-z])?)*$/;

// 一代身份证号(15位数字)
export const regChinaID1 = /^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$/;

// 二代身份证号(18位数字),最后一位是校验位,可能为数字或字符X
export const regChinaID2 =
  /^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}([\dXx])$/;

// 身份证号, 支持1/2代(15位/18位数字)
export const regChinaID =
  /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}([\dXx])$)/;

// 护照（包含香港、澳门）
export const regPassport =
  /(^[DEGHKPSdeghkps]\d{8}$)|(^(([Ee][A-Fa-f])|([DPSdps][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/;

// 用户密碼正则
export const passwordReg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;

//登录密码正则
export const loginPasswordRegx = /^(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z\d]{8,16}$/;
